home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / com2asm2.lqr / COM2ASM2.DOC < prev   
Text File  |  1985-06-13  |  2KB  |  66 lines

  1. A
  2.  
  3. ** PRESS YOUR ENTER KEY TO BEGIN **
  4. For DOS 2.0 
  5.  
  6. I use this program whenever I want to convert a 
  7. COM file to assembler source code, for subsequent
  8. modification and re-assembly.  Here's how it works:
  9.  
  10. Get into debug with the COM file you're working
  11. with, and locate the areas containing the code.
  12. (stay away from the data areas)  Write down the
  13. starting and ending addresses for all the code
  14. areas in the file, and quit.
  15. Back in dos, create a file to be piped into the
  16. standard input of the debug program, containing
  17. the commands necessary to unassemble the program
  18. in the sequence in which it resides in ram.
  19. The easiest way to do this is to use the copy 
  20. command. 
  21.  
  22. A>copy con file1
  23. u addr1 addr2  <-- unassemble the file
  24. u addr3 addr4
  25. .    (etc.)
  26. .
  27. q              <-- DON'T FORGET THIS!
  28. ^Z
  29.  
  30.  1 File(s) copied
  31.  
  32. A>
  33. Now, type
  34. DEBUG (filename).COM  <FILE1  >FILE2
  35.  
  36. This will (given enough time) generate a file 
  37. called FILE2 containing the result of the 
  38. above commands to debug.  Now, run the
  39. COM2ASM.BAS program, enter FILE2 in response
  40. to the "Input file?" prompt, and some other
  41. (new) file name for the output file prompt.
  42. The program will then read file2, get rid of the
  43. hex addresses on the left and the op code, 
  44. label the intra-segment jumps and calls and their
  45. destinations with labels of the form "Ln",
  46. where 0<n<999, and send the results to the other
  47. (new) file.  The result is compatible (as far as
  48. it goes) with the IBM assembler.
  49. If you get "Error: Referenced code not found",
  50. it means that a jump or call was found which
  51. referenced an address not found in the input file.
  52. At this point, processing stops and the address of
  53. the missing code is printed out, followed by
  54. the addresses of referenced code not yet 
  55. processed.
  56. When this happens, it either means you missed 
  57. portions of the code, you got 'unsynchronized' 
  58. during the unassembly (perhaps you started 
  59. unassembling in the middle of an instruction), 
  60. you got into data areas, or (possibly) the code 
  61. modifies itself during execution.  
  62.  
  63. Rich Winkel
  64. Columbia, Mo.
  65. 65399 '** DONE - PRESS ENTER TO RETURN TO MENU **
  66.